package com.jwsoft.manager.core.dao.service;

import com.jwsoft.manager.common.vo.eduAddressTree.AddressEsVO;
import com.jwsoft.manager.common.vo.eduAddressTree.AddressRequest;
import com.jwsoft.manager.common.vo.eduAddressTree.AddressVO;
import com.jwsoft.manager.common.vo.eduAddressTree.ElasticHealthVO;

/**
 * 地址格式化服务
 *
 * @author fangs
 */
public interface AddressMessageService {
    /**
     * 格式地址化，失败时自动加默认前缀重试
     *
     * @param request 需要格式话的地址和地址语言
     * @return 格式化后的地址
     * @author fangs
     */
    AddressVO parseAddressAuto(AddressRequest request);

    /**
     * 保存地址数据到搜索引擎
     *
     * @param addressEsVO
     * @author fangs
     */
    void saveAddressData(AddressEsVO addressEsVO);

    /**
     * 删除某个节点下的所有数据
     *
     * @param areaType
     * @param treeId
     * @return 删除的记录数
     * @author fangs
     */
    Long deleteAddressByNode(String areaType, Long treeId);

    /**
     * 检查es健康状态
     *
     * @return es集群信息
     * @author fangs
     */
    ElasticHealthVO checkElasticsearch();

    /**
     * 更新地址数据到搜索引擎
     *
     * @param addressEsVO
     * @author fangs
     */
    void updateAddressData(AddressEsVO addressEsVO);
}
